package com.yangyouqi.chaper10.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 杨友奇
 * @Time 2018/7/27
 */
@RestController
public class TestController {

    /**
     * 简单的测试热部署，在这个类修改Test()方法，不重启，按Ctrl+Shift+F9编译下当前类，然后再刷新下页面看看是否内容改变了。
     * spring-boot-devtools 是一个为开发者服务的一个模块，其中最重要的功能就是自动应用代码更改到最新的App上面去。
     * 原理是在发现代码有更改之后，重新启动应用，但是速度比手动停止后再启动还要更快，
     * 更快指的不是节省出来的手工操作的时间。
     * 其深层原理是使用了两个ClassLoader，一个Classloader加载那些不会改变的类（第三方Jar包），另一个ClassLoader加载会更改的类，称为  restart ClassLoader,
     * 这样在有代码更改的时候，原来的restart ClassLoader 被丢弃，重新创建一个restart ClassLoader，由于需要加载的类相比较少，所以实现了较快的重启时间（5秒以内）
     * @param name
     * @return
     */
    @GetMapping("test")
    public String Test(@RequestParam String name){
        return "Hello，你的名字是123："+name;
    }

    }
